Modern computing systems can include many software processes active at any one time in various states of execution. These processes can be initiated by an operating system, can monitor or service processes that are initialized at start time or upon launching a user application, or can be a user application itself. Many, if not most of these processes or features of these processes, are beyond the ability of a user to control directly. Therefore, if functionality offered by these processes is to be accessed at all, such access usually typically must be accomplished by another software process.
Software applications manage information on behalf of end users. The number of software applications or processes running on a computing system is generally a function of the amount of data the system must process and the number of tasks the system is called upon to perform. The least efficient parts of these computing duties are the ones that require human interaction. Despite increasingly powerful machines, end users typically have to manually process a great deal of computerized information.
One major component of a general computing system is a storage device such as a hard disk drive, which is commonly used for persistent storage of electronic information such as data files and executable programs. To organize electronic information so that it can be located and retrieved in a usable form, a file system can be employed. Many file systems exist but generally all provide a conceptual organizational layer for the format and location of information on a storage device.
The conceptual organizational layer provided by a file system can be employed by software processes like those of an operating system to create, access, retrieve, delete, and otherwise manage information stored on the storage device. To protect integrity of the file system and ensure adherence to the format of the file system, generally only certain privileged software processes like input-output processes of an operating system are allowed direct access to the file system. Applications and users that access a file system generally must do so through functions provided by the operating system. These functions are usually hidden from the view of end users who may not even know of the existence of these functions. Commonly, this restricted access results in an inability of a user to fully exploit features of the file system to make computing tasks easier, for example, by using attributes of the file system to automate tasks such as file organization or location.
Generally, an end user manages information on his/her computer according to an information life cycle. During that life cycle, the end user usually creates information or obtains information from some source, and the information is then stored in a file system. At some point, the end user retrieves the information and takes action based on that information—this cycle can be repeated many times. Current systems do no provide for an end user to automate portions of this life cycle in ways that are efficient and personalized to the needs of the end user.